// Particles - Sparks
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v1.3.16 on Tue Sep 17 17:13:41 2019
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// TEXCOORD                 0   xy          0     NONE   float   xy
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Target                0   xyzw        0   TARGET   float   xyzw
// SV_Target                1   xyzw        1   TARGET   float   xyzw
//
ps_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb0[4], immediateIndexed
dcl_constantbuffer cb1[72], immediateIndexed
dcl_constantbuffer cb2[45], dynamicIndexed
dcl_constantbuffer cb3[17], immediateIndexed
dcl_sampler s0, mode_default
dcl_sampler s1, mode_default
dcl_sampler s2, mode_default
dcl_sampler s3, mode_default
dcl_sampler s4, mode_default
dcl_sampler s5, mode_default
dcl_sampler s6, mode_default
dcl_sampler s7, mode_default
dcl_sampler s8, mode_default
dcl_sampler s9, mode_default
dcl_sampler s10, mode_default
dcl_resource_texture2d (float,float,float,float) t0
dcl_resource_texture2d (float,float,float,float) t1
dcl_resource_texture2d (float,float,float,float) t2
dcl_resource_texture2d (float,float,float,float) t3
dcl_resource_texture2d (float,float,float,float) t4
dcl_resource_texture2d (float,float,float,float) t5
dcl_resource_texture3d (float,float,float,float) t6
dcl_resource_texture3d (float,float,float,float) t7
dcl_resource_texture3d (float,float,float,float) t8
dcl_resource_texture3d (float,float,float,float) t9
dcl_resource_texture2d (float,float,float,float) t10
dcl_input_ps linear v0.xy
dcl_output o0.xyzw
dcl_output o1.xyzw
dcl_temps 19
sample_indexable(texture2d)(float,float,float,float) r0.xyzw, v0.xyxx, t2.xyzw, s2
sample_indexable(texture2d)(float,float,float,float) r1.xyzw, v0.xyxx, t3.xyzw, s3
sample_indexable(texture2d)(float,float,float,float) r2.xyzw, v0.xyxx, t4.xyzw, s4
mad r2.xyzw, r2.xyzw, cb3[3].xyzw, cb3[4].xyzw
sample_l_indexable(texture2d)(float,float,float,float) r3.xy, v0.xyxx, t10.xyzw, s10, l(0.000000)
ne r3.z, cb3[15].z, l(0.000000)
mov r4.xyz, cb3[8].xyzx
mov r5.xyz, r1.xyzx
mov r6.xyz, r0.xyzx
mov r3.w, r0.w
mov r4.w, l(0)
loop
  ige r5.w, r4.w, cb0[2].w
  breakc_nz r5.w
  mad r3.w, cb0[2].z, r1.w, r3.w
  mad r7.xy, cb3[0].zwzz, r3.wwww, cb3[0].xyxx
  sample_indexable(texture2d)(float,float,float,float) r7.xyzw, r7.xyxx, t5.xyzw, s5
  mad r7.xyzw, r7.xyzw, cb3[1].xyzw, cb3[2].xyzw
  mul r7.xyzw, r2.xyzw, r7.xyzw
  mov r9.xyz, l(0,0,0,0)
  mov r5.w, l(0)
  mov r6.w, l(0)
  mov r8.xyzw, l(0,0,0,0)
  loop
    ige r9.w, r8.w, cb2[0].x
    breakc_nz r9.w
    mul r9.w, r7.y, cb2[r8.w + 33].x
    ishl r10.x, r8.w, l(2)
    mul r10.yzw, r6.yyyy, cb2[r10.x + 2].xxyz
    mad r10.yzw, r6.xxxx, cb2[r10.x + 1].xxyz, r10.yyzw
    mad r10.yzw, r6.zzzz, cb2[r10.x + 3].xxyz, r10.yyzw
    add r10.yzw, r10.yyzw, cb2[r10.x + 4].xxyz
    mul r11.xyz, r10.yzwy, cb2[r8.w + 41].xyzx
    round_ni r11.xyz, r11.xyzx
    add r10.yzw, r10.yyzw, -r11.xxyz
    mul_sat r11.xyz, r10.yzwy, cb2[r8.w + 37].xyzx
    add r12.xyz, -r10.yzwy, l(1.000000, 1.000000, 1.000000, 0.000000)
    mul_sat r12.xyz, r12.xyzx, cb2[r8.w + 37].xyzx
    mul r11.xyz, r11.xyzx, r12.xyzx
    min r11.y, r11.z, r11.y
    min r11.x, r11.y, r11.x
    mov_sat r10.yzw, r10.yyzw
    ieq r11.y, r8.w, l(0)
    if_z r8.w
      sample_indexable(texture3d)(float,float,float,float) r12.xyz, r10.yzwy, t6.xyzw, s6
    endif
    if_z r11.y
      ieq r11.y, r8.w, l(1)
      if_nz r11.y
        sample_indexable(texture3d)(float,float,float,float) r12.xyz, r10.yzwy, t7.xyzw, s7
      endif
      if_z r11.y
        ieq r11.y, r8.w, l(2)
        if_nz r11.y
          sample_indexable(texture3d)(float,float,float,float) r12.xyz, r10.yzwy, t8.xyzw, s8
        endif
        if_z r11.y
          sample_indexable(texture3d)(float,float,float,float) r12.xyz, r10.yzwy, t9.xyzw, s9
        endif
      endif
    endif
    mul r10.yzw, r12.yyyy, cb2[r10.x + 18].xxyz
    mad r10.yzw, r12.xxxx, cb2[r10.x + 17].xxyz, r10.yyzw
    mad r10.xyz, r12.zzzz, cb2[r10.x + 19].xyzx, r10.yzwy
    mul r11.yzw, r11.xxxx, r10.xxyz
    mad r8.xyz, r11.yzwy, r9.wwww, r8.xyzx
    mul r10.xyz, r9.wwww, r10.xyzx
    mul r10.xyz, r11.xxxx, r10.xyzx
    mad r9.xyz, r10.xyzx, cb2[r8.w + 33].yyyy, r9.xyzx
    mul r9.w, r11.x, cb2[r8.w + 33].y
    mad r5.w, r11.x, cb2[r8.w + 33].y, r5.w
    max r6.w, r6.w, r9.w
    iadd r8.w, r8.w, l(1)
  endloop
  add r7.y, r5.w, l(0.001000)
  div r10.xyz, r9.xyzx, r7.yyyy
  add r11.xyz, r4.xyzx, r8.xyzx
  add r10.xyz, -r5.xyzx, r10.xyzx
  mad r10.xyz, r6.wwww, r10.xyzx, r5.xyzx
  mad r11.xyz, -r7.xxxx, r10.xyzx, r11.xyzx
  add r12.xyz, -r6.xyzx, cb0[0].xyzx
  add r12.xyz, r12.xyzx, l(0.000000, 0.000000, 0.000100, 0.000000)
  dp3 r7.x, r12.xyzx, r12.xyzx
  max r7.y, r7.x, cb0[0].w
  div r7.y, cb0[1].w, r7.y
  rsq r7.x, r7.x
  mul r12.xyz, r7.xxxx, r12.xyzx
  mad r4.xyz, r7.yyyy, r12.xyzx, r11.xyzx
  mul r11.xyz, r4.xyzx, cb0[2].zzzz
  mad r7.xy, cb3[5].zwzz, r3.wwww, cb3[5].xyxx
  sample_l_indexable(texture2d)(float,float,float,float) r7.xy, r7.xyxx, t5.xyzw, s5, l(0.000000)
  mad r7.xy, r7.xyxx, cb3[6].xyxx, cb3[7].xyxx
  mul r7.xy, |r3.xyxx|, r7.xyxx
  mul r7.xy, r7.xyxx, cb0[2].xyxx
  min r7.x, r7.y, r7.x
  mad r7.x, r7.x, cb3[14].w, cb3[15].x
  mad r11.xyz, r11.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r10.xyzx
  mul r12.xyz, r11.xyzx, cb0[2].zzzz
  mad r13.xyz, cb0[2].zzzz, r11.xyzx, r6.xyzx
  mad r5.xyz, r4.xyzx, cb0[2].zzzz, r10.xyzx
  dp3 r7.y, r12.xyzx, r12.xyzx
  rsq r7.y, r7.y
  mul r10.xyz, r7.yyyy, r12.xyzx
  mad r10.xyz, r10.xyzx, r7.xxxx, r6.xyzx
  add r10.xyz, r10.xyzx, cb1[71].xyzx
  mul r14.xyz, r10.yyyy, cb1[1].xywx
  mad r10.xyw, r10.xxxx, cb1[0].xyxw, r14.xyxz
  mad r10.xyz, r10.zzzz, cb1[2].xywx, r10.xywx
  add r10.xyz, r10.xyzx, cb1[3].xywx
  div r10.xy, r10.xyxx, r10.zzzz
  ge r14.xy, l(1.000000, 1.000000, 0.000000, 0.000000), |r10.xyxx|
  and r7.y, r14.y, r14.x
  if_nz r7.y
    mad r14.xy, r10.xyxx, cb1[67].xyxx, cb1[67].wzww
    sample_l_indexable(texture2d)(float,float,float,float) r7.y, r14.xyxx, t0.yxzw, s0, l(0.000000)
    ge r8.w, r7.y, l(0.875000)
    mad r9.w, r7.y, l(8.000000), l(-7.000000)
    movc r7.y, r8.w, r9.w, r7.y
    mad r8.w, r7.y, cb1[65].x, cb1[65].y
    mad r7.y, r7.y, cb1[65].z, -cb1[65].w
    div r7.y, l(1.000000, 1.000000, 1.000000, 1.000000), r7.y
    add r7.y, r7.y, r8.w
    add r8.w, -r7.y, r10.z
    lt r8.w, |r8.w|, cb0[3].x
    if_nz r8.w
      mul r10.xy, r7.yyyy, r10.xyxx
      mul r10.yzw, r10.yyyy, cb1[49].xxyz
      mad r10.xyz, r10.xxxx, cb1[48].xyzx, r10.yzwy
      mad r10.xyz, r7.yyyy, cb1[50].xyzx, r10.xyzx
      add r10.xyz, r10.xyzx, cb1[51].xyzx
      sample_l_indexable(texture2d)(float,float,float,float) r14.xyz, r14.xyxx, t1.xyzw, s1, l(0.000000)
      mad r14.xyz, r14.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000)
      dp3 r7.y, r10.xyzx, r14.xyzx
      dp3 r8.w, r14.xyzx, r12.xyzx
      dp3 r9.w, r14.xyzx, r6.xyzx
      add r10.x, r7.x, r9.w
      dp3 r10.y, r14.xyzx, r13.xyzx
      add r10.xy, -r7.yxyy, r10.xyxx
      add r10.y, -r7.y, r10.y
      ge r10.z, r10.x, l(0.000000)
      ge r10.w, l(0.000000), r10.y
      and r10.z, r10.w, r10.z
      lt r8.w, r8.w, l(0.000000)
      and r8.w, r8.w, r10.z
      if_nz r8.w
        dp3 r8.w, r11.xyzx, r14.xyzx
        mul r12.xyz, r14.xyzx, r8.wwww
        mad r11.xyz, -r8.wwww, r14.xyzx, r11.xyzx
        mul r12.xyz, r7.zzzz, r12.xyzx
        mad r11.xyz, cb3[16].xxxx, r11.xyzx, -r12.xyzx
        mul r10.zw, r3.wwww, l(0.000000, 0.000000, 131.000000, 937.000000)
        frc r10.zw, r10.zzzw
        mul r7.z, r10.z, l(6.283000)
        dp3 r8.w, r11.xyzx, r11.xyzx
        sqrt r8.w, r8.w
        div r10.z, l(1.000000, 1.000000, 1.000000, 1.000000), r8.w
        mul r12.xyz, r10.zzzz, r11.xyzx
        dp3 r10.z, r12.xyzx, r14.xyzx
        log r10.w, r10.w
        mul r10.w, r10.w, cb3[15].w
        exp r10.w, r10.w
        mul r10.w, r10.w, cb3[15].z
        mad r10.z, -r10.z, r10.z, l(1.000000)
        sqrt r10.z, r10.z
        add r10.z, -r10.z, l(1.000000)
        mad r10.z, -r10.w, r10.z, l(1.000000)
        mad r10.w, -r10.z, r10.z, l(1.000000)
        sqrt r10.w, r10.w
        lt r11.w, |r12.z|, l(0.999000)
        movc r15.xyz, r11.wwww, l(1.000000,0,0,0), l(0,1.000000,0,0)
        mul r16.xyz, r12.yzxy, r15.xyzx
        mad r15.xyz, r15.zxyz, r12.zxyz, -r16.xyzx
        dp3 r11.w, r15.xyzx, r15.xyzx
        rsq r11.w, r11.w
        mul r15.xyz, r11.wwww, r15.xyzx
        mul r16.xyz, r12.zxyz, r15.yzxy
        mad r16.xyz, r12.yzxy, r15.zxyz, -r16.xyzx
        sincos r17.x, r18.x, r7.z
        mul r7.z, r10.w, r18.x
        mul r10.w, r10.w, r17.x
        mul r16.xyz, r10.wwww, r16.xyzx
        mad r15.xyz, r15.xyzx, r7.zzzz, r16.xyzx
        mad r12.xyz, r12.xyzx, r10.zzzz, r15.xyzx
        mul r12.xyz, r8.wwww, r12.xyzx
        movc r5.xyz, r3.zzzz, r12.xyzx, r11.xyzx
        add r7.x, -r7.x, r9.w
        add r7.x, -r7.y, r7.x
        mad r7.xyz, r7.xxxx, r14.xyzx, r6.xyzx
        mul r11.xyz, r5.xyzx, cb0[2].zzzz
        mad r13.xyz, r11.xyzx, l(0.100000, 0.100000, 0.100000, 0.000000), r7.xyzx
        add r3.w, r3.w, cb3[15].y
      else
        lt r7.xy, r10.yxyy, l(0.000000, 0.000000, 0.000000, 0.000000)
        and r7.x, r7.y, r7.x
        movc r3.w, r7.x, l(1.100000), r3.w
      endif
    endif
  endif
  mad r7.xyz, cb3[10].xyzx, r7.wwww, cb3[9].xyzx
  mad r10.xyz, cb3[12].yzxy, r7.wwww, cb3[11].yzxy
  mad r11.xyz, cb3[14].xyzx, r7.wwww, cb3[13].xyzx
  mad r11.xyz, r10.zxyz, r3.wwww, r11.xyzx
  sincos r11.xyz, r12.xyz, r11.xyzx
  mul r11.xyz, r10.xyzx, r11.yzxy
  mad r10.xyz, r10.yzxy, r12.zxyz, -r11.xyzx
  mul r7.xyz, r7.xyzx, r10.xyzx
  mad r6.xyz, r7.xyzx, cb0[2].zzzz, r13.xyzx
  iadd r4.w, r4.w, l(1)
endloop
mov o1.xyz, r5.xyzx
mov o0.w, r3.w
add o0.xyz, r6.xyzx, cb0[1].xyzx
mov o1.w, r1.w
ret
// Approximately 0 instruction slots used
